package com.hx.study.mapper;

import java.util.List;

import com.hx.study.domain.Question;
import com.hx.study.domain.QuestionAnswer;
import org.apache.ibatis.annotations.Param;

/**
 * 问题题目Mapper接口
 *
 * @author user
 * @date 2022-06-06
 */
public interface QuestionMapper {
    /**
     * 查询问题题目
     *
     * @param id 问题题目主键
     * @return 问题题目
     */
    public Question selectQuestionById(Integer id);

    /**
     * 查询问题题目列表
     *
     * @param question 问题题目
     * @return 问题题目集合
     */
    public List<Question> selectQuestionList(Question question);

    /**
     * 新增问题题目
     *
     * @param question 问题题目
     * @return 结果
     */
    public int insertQuestion(Question question);

    /**
     * 修改问题题目
     *
     * @param question 问题题目
     * @return 结果
     */
    public int updateQuestion(Question question);

    /**
     * 删除问题题目
     *
     * @param id 问题题目主键
     * @return 结果
     */
    public int deleteQuestionById(Integer id);

    /**
     * 批量删除问题题目
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQuestionByIds(Integer[] ids);

    /**
     * 批量删除候选答案
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQuestionAnswerByQuestionIds(Integer[] ids);

    /**
     * 批量新增候选答案
     *
     * @param questionAnswerList 候选答案列表
     * @return 结果
     */
    public int batchQuestionAnswer(List<QuestionAnswer> questionAnswerList);


    /**
     * 通过问题题目主键删除候选答案信息
     *
     * @param id 问题题目ID
     * @return 结果
     */
    public int deleteQuestionAnswerByQuestionId(Integer id);

    List<Question> selectRandByRepositoryIdAndType(@Param("repositoryId") String repositoryId, @Param("type") String type, @Param("count") int count);
}
